import random
import time

import keyboard
import pyautogui

import waiting_hook
from utils.check_buff import refresh_buff_by_time


# 开始钓鱼
def start_fishing():
    print("========= 甩杆开钓 =========")
    # 获取指定位置的坐标，例如 (x=500, y=300)
    # 钓鱼的技能位置
    x = 1000
    y = 850
    # 模拟鼠标点击
    pyautogui.click(x, y)
    pyautogui.click(x, y)
    pyautogui.press('=')
    pyautogui.press('=')


# 收鱼漂
def harvest():
    # 1. 循环检查鱼漂是否有鱼
    # 2. 当有鱼了找到鱼漂坐标, 收鱼
    # 这个函数将检查是否有鱼和收鱼一起执行了
    waiting_hook.waiting_hook_once()


def random_operate():
    time.sleep(0.5)
    if random.random() > 0.9:
        # 10%的概率跳一下
        pyautogui.press(' ')
    interval_time = random.uniform(0, 3)
    time.sleep(interval_time)
    time.sleep(0.5)


# 循环钓鱼
while True:
    # 1. 退出检测-
    # 定义取消按键
    cancel_key = 'q'  # 退出键
    if keyboard.is_pressed(cancel_key):
        print("中断钓鱼")
        break

    # 2. 检查是否有钓鱼buff, 没有就上一个钓鱼的buff
    # refresh_buff_by_time()

    # 3. 触发钓鱼
    start_fishing()

    # 4. 收鱼漂
    harvest()

    # 5. 每次钓鱼之间有点随机等待的间隔时长, 防止系统检测
    # 再加点随机操作
    random_operate()
